package com.hospital.workstation.domain.vo;

import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.hospital.common.annotation.ExcelDictFormat;
import com.hospital.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;



/**
 * 医嘱视图对象 his_medical_orders
 *
 * @author whb
 * @date 2023-03-10
 */
@Data
@ExcelIgnoreUnannotated
public class HisMedicalOrdersVo {

    private static final long serialVersionUID = 1L;

    /**
     * 医嘱ID
     */
    @ExcelProperty(value = "医嘱ID")
    private Long id;

    /**
     * 病历号
     */
    @ExcelProperty(value = "病历号")
    private Integer medicalRecordNo;

    /**
     * 医嘱明细ID，HIS产生单条医嘱唯一标识
     */
    @ExcelProperty(value = "医嘱明细ID，HIS产生单条医嘱唯一标识")
    private String orderItemId;

    /**
     * 医嘱组号，HIS产生同一次就诊有相同的医嘱组号
     */
    @ExcelProperty(value = "医嘱组号，HIS产生同一次就诊有相同的医嘱组号")
    private String orderGroupId;

    /**
     * 医嘱项目代码
     */
    @ExcelProperty(value = "医嘱项目代码")
    private String orderItemCode;

    /**
     * 医嘱项目描述
     */
    @ExcelProperty(value = "医嘱项目描述")
    private String orderItemDesc;

    /**
     * 医嘱类型（1长期 2临时 3自备长期 4自备临时 5出院带药）
     */
    @ExcelProperty(value = "医嘱类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=长期,2=临时,3=自备长期,4=自备临时,5=出院带药")
    private String orderTypeCode;

    /**
     * 医嘱状态代码（V核实 E执行 D停止 C撤销）
     */
    @ExcelProperty(value = "医嘱状态代码", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "V=核实,E=执行,D=停止,C=撤销")
    private String orderStatus;

    /**
     * 医嘱类别（1检查类 2西药类 3中药类）
     */
    @ExcelProperty(value = "医嘱类别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=检查类,2=西药类,3=中药类")
    private String orderCategory;

    /**
     * 处方号
     */
    @ExcelProperty(value = "处方号")
    private String prescriptionNo;

    /**
     * 剂型代码
     */
    @ExcelProperty(value = "剂型代码")
    private String doseFormsCode;

    /**
     * 剂型描述
     */
    @ExcelProperty(value = "剂型描述")
    private String doseFormsDesc;

    /**
     * 单次剂量
     */
    @ExcelProperty(value = "单次剂量")
    private String doseQty;

    /**
     * 单次剂量单位代码
     */
    @ExcelProperty(value = "单次剂量单位代码")
    private String doseUnitCode;

    /**
     * 单次剂量单位描述
     */
    @ExcelProperty(value = "单次剂量单位描述")
    private String doseUnitDesc;

    /**
     * 频次代码
     */
    @ExcelProperty(value = "频次代码")
    private String freqCode;

    /**
     * 频次描述
     */
    @ExcelProperty(value = "频次描述")
    private String freqDesc;

    /**
     * 用药途径代码
     */
    @ExcelProperty(value = "用药途径代码")
    private String instrCode;

    /**
     * 用药途径描述
     */
    @ExcelProperty(value = "用药途径描述")
    private String instrDesc;

    /**
     * 疗程代码
     */
    @ExcelProperty(value = "疗程代码")
    private String durationCode;

    /**
     * 疗程描述
     */
    @ExcelProperty(value = "疗程描述")
    private String durationDesc;

    /**
     * 医嘱数量
     */
    @ExcelProperty(value = "医嘱数量")
    private String orderAmount;

    /**
     * 医嘱结果状态代码
     */
    @ExcelProperty(value = "医嘱结果状态代码")
    private String resultStatusCode;

    /**
     * 医嘱结果状态描述
     */
    @ExcelProperty(value = "医嘱结果状态描述")
    private String resultStatusDesc;

    /**
     * 医嘱备注信息
     */
    @ExcelProperty(value = "医嘱备注信息")
    private String remarks;

    /**
     * 医嘱开立者代码
     */
    @ExcelProperty(value = "医嘱开立者代码")
    private String enterDocCode;

    /**
     * 医嘱开立者描述
     */
    @ExcelProperty(value = "医嘱开立者描述")
    private String enterDocDesc;

    /**
     * 医嘱开立时间
     */
    @ExcelProperty(value = "医嘱开立时间")
    private LocalDateTime enterTime;

    /**
     * 医嘱开立科室代码
     */
    @ExcelProperty(value = "医嘱开立科室代码")
    private String enterDeptCode;

    /**
     * 医嘱开立科室
     */
    @ExcelProperty(value = "医嘱开立科室")
    private String enterDeptDesc;

    /**
     * 医嘱执行科室代码
     */
    @ExcelProperty(value = "医嘱执行科室代码")
    private String execDeptCode;

    /**
     * 医嘱执行科室
     */
    @ExcelProperty(value = "医嘱执行科室")
    private String execDeptDesc;

    /**
     * 要求执行时间
     */
    @ExcelProperty(value = "要求执行时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    private LocalDateTime requireExecTime;

    /**
     * 医嘱停止时间
     */
    @ExcelProperty(value = "医嘱停止时间")
    private LocalDateTime stopTime;

    /**
     * 停止医嘱者代码
     */
    @ExcelProperty(value = "停止医嘱者代码")
    private String stopDocCode;

    /**
     * 停止医嘱者描述
     */
    @ExcelProperty(value = "停止医嘱者描述")
    private String stopDocDesc;

    /**
     * 是否皮试（Y是 N否）
     */
    @ExcelProperty(value = "是否皮试", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "Y=是,N=否")
    private String isSkinTest;

    /**
     * 是否紧急（Y是 N否）
     */
    @ExcelProperty(value = "是否紧急", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "Y=是,N=否")
    private String isEmergency;

    /**
     * 父医嘱ID
     */
    @ExcelProperty(value = "父医嘱ID")
    private String parentOrderId;

    /**
     * 标本号
     */
    @ExcelProperty(value = "标本号")
    private String specimenId;

    /**
     * 标本代码
     */
    @ExcelProperty(value = "标本代码")
    private String specimenCode;

    /**
     * 医嘱价格
     */
    @ExcelProperty(value = "医嘱价格")
    private String orderPrice;

    /**
     * 流速
     */
    @ExcelProperty(value = "流速")
    private String speedFlowRate;

    /**
     * 流速单位
     */
    @ExcelProperty(value = "流速单位")
    private String flowRateUnitDesc;

    /**
     * 血袋号
     */
    @ExcelProperty(value = "血袋号")
    private String bloodNum;

    /**
     * 是否代煎（Y是 N否）
     */
    @ExcelProperty(value = "是否代煎", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "Y=是,N=否")
    private String isPreseCookMode;

    /**
     * 草药剂型
     */
    @ExcelProperty(value = "草药剂型")
    private String cmPrescCookTypeCode;

    /**
     * 数量单位
     */
    @ExcelProperty(value = "数量单位")
    private String packUomDesc;

    /**
     * 最后更新人编码
     */
    @ExcelProperty(value = "最后更新人编码")
    private String updateUserCode;

    /**
     * 最后更新人描述
     */
    @ExcelProperty(value = "最后更新人描述")
    private String updateUserDesc;

    /**
     * 最后更新时间
     */
    @ExcelProperty(value = "最后更新时间")
    private LocalDateTime updateLastTime;


}
